草庐IT

Swift 枚举评估

全部标签

java - 如何访问 playframework 模板中的枚举字段

我有一个Enum,它有特定的字段,我需要在我的play1.2.4模板中访问它publicEnumWORKER{FARMER,SMITH,GARDENER}假设我需要检查模板中的“人”变量是农夫、铁匠还是园丁,我该怎么做?#{ifperson.Type==WORKER.FARMER}...dosomething...#{/if}我来了NullPointerException:Cannotgetproperty'FARMER'onnullobject.因此,模板不知道EnumWORKER。由于无法为Enum创建新实例,我应该如何使Enum可用于模板? 最佳答案

java - 在这种方法调用和传入参数的情况下,是否保证 Java 评估顺序

我阅读了JLS15.7.4和15.12.4.2,但它不保证不会有任何编译器/运行时优化会改变方法参数的计算顺序。假设以下代码:publicstaticvoidmain(String[]args){MyObjectobj=newMyObject();methodRelyingOnEvalOrder(obj,obj.myMethod());}publicstaticObjectmethodRelyingOnEvalOrder(MyObjectobj,Objectinput){if(obj.myBoolean())returnnull;elsereturninput;}是否保证编译器或运行时

java - 如果我在循环外评估数组的大小,运行时效率会有差异吗?

迭代元素(在本例中为整数)数组的传统方法如下:int[]array={5,10,15};for(inti=0;i但是,这是否意味着在每次迭代后都会重新评估“array.length”?这样做不是更有效率吗?:int[]array={5,10,15};intnoOfElements=array.length;for(inti=0;i这样,(据我了解)程序只需计算一次,然后查找“noOfElements”变量的值。注意:我知道增强的for循环,但是当您想使用正在递增的变量(本例中的“i”)来实现其他目的时,不能使用它在for循环中。我怀疑这实际上是一个问题,即Java编译器是否有能力实现“

Java:枚举 values() 和 valueOf(String)

为什么javac向定义的枚举类型添加values()和valueOf(String)方法?将它们添加到Enum类本身不是更好吗?我的意思是,如果我有一些枚举,例如enumFooEnum{ONE,TWO}javac在编译时将values()和valueOf(String)添加到FooEnum中。我觉得有点奇怪。这背后的原因是什么?只是为了保证返回值的类型安全,还是还有别的?如果仅是为了类型安全,泛型难道没有帮助吗? 最佳答案 它们是静态方法-如何将它们添加到Enum中?静态方法不是多态的。此外,在您提议的方案中,Enum中的实现会是什

java - 带有日历的 Java 中的天数枚举

我想知道是否存在包含Java中所有工作日的现有枚举。我正在使用Calendar来处理时间逻辑,但我没有看到这样的东西(我可以自己创建它,但我宁愿使用现有的东西)。我还看到了threetenproject但它仍处于alpha阶段。由于包含星期几的枚举是如此微不足道,它在枚举文档中由sun显示,我在想可能已经存在一些东西。有什么想法吗? 最佳答案 你想要newDateFormatSymbols().getWeekdays(). 关于java-带有日历的Java中的天数枚举,我们在StackO

java - switch 语句在这里是否合适,采用枚举?

今天我用Java制作了一个俄罗斯方block克隆体,当需要实现block生成机制时,我编写了这个采用枚举的switch语句。我被告知要尽可能避免使用switch语句,但我不确定是否可以在这里避免使用switch语句,除非我彻底修改我最初的基于继承的设计选择。为了实现不同类型的block,我决定制作一个名为Block的抽象父类(superclass),并为每种特定类型制作一个子类。我还制作了一个标记block类型的枚举。例如,一个ZBlockextendsBlock对象会将Type.ZBlock枚举分配给它的Type字段变量。privatevoidspawnBlock(Typetype)

java - 如何将不同的枚举类型传递给方法?

我有一个方法,它接受一个枚举并以某种方式使用它。问题是我有许多不同的枚举类型,将枚举传递给方法并不是可接受的做法。 最佳答案 我假设你的意思是你有一堆不同的枚举类,它们意味着不同的东西,并且你想将它们传递到一个方法中。为此,请使用markerinterface:publicinterfaceSpecialEnumType{}然后:publicenumMySpecialEnumTypeimplementsSpecialEnumType{...}publicenumAnotherSpecialEnumTypeimplementsSpec

java - 比较枚举的最佳方式

这个问题在这里已经有了答案:ComparingJavaenummembers:==orequals()?(15个答案)关闭4年前。我有一个枚举,例如enumColor{Red,Brown}。我也有一些这种类型的变量:Colorc1=Brown,c2=Red与常量值比较的最佳方法是什么:if(c1==Color.Brown){//isbrown}或if(c1.equals(Color.Brown)){//isbrown}

java - 如何将 rowmapper 中的结果集转换为枚举?

我的行映射器如下:privatestaticfinalclassUserRowMapperimplementsRowMapper{Useruser=newUser();user.setId(rs.getInt("id"));user.setUserType((UserType)rs.getInt("userType"));//?????returnuser;}所以我试图将数据库中userType的整数值转换为枚举UserType。为什么这行不通? 最佳答案 投了吗?不,做不到。您可以调用valueOf从字符串中获取枚举值,只要字符串

java - Java 枚举的逻辑操作

我有一个项目,在不同的场景中,我必须处理大型数据集的不同子集。按照我编写代码的方式,有一个Collector接口(interface)和一个类DataCollectorimplementsCollector。DataCollector类是用子集创建条件实例化的,这些条件是枚举。假设数据集是一组100万个英语单词,我想处理由奇数个字母组成的单词子集。然后,我执行以下操作:DataCollectordataCollector=newDataCollector(CollectionType.WORDS_OF_ODD_LENGTH);SetfourLetteredWords=dataColle